/**
 * 
 */
package br.com.cnpv.modelo.dao;

import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;

import br.com.cnpv.modelo.acesso.idao.IOficinaDAO;
import br.com.cnpv.modelo.entity.Oficina;

/**
 * @author ricardo
 *
 */
public class OficinaDAO implements IOficinaDAO {

	/* (non-Javadoc)
	 * @see br.com.cnpv.modelo.acesso.idao.IOficinaDAO#buscar(br.com.cnpv.modelo.entity.Oficina, org.hibernate.Session)
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<Oficina> buscar(Oficina oficina, Session session) throws HibernateException {
		
		String clausula = "";
		Query query = null;
		
		if(oficina.getApelido() != null && StringUtils.isNotEmpty(oficina.getCdPess())){
			
			clausula = "%" + oficina.getApelido() + "%";
			query = session.getNamedQuery("Oficina.buscarByApelido");
		}
		
		query.setString("clausula", clausula);
		
		return query.list();
	}

	@Override
	public Oficina saveOrUpdate(Oficina oficina, Session session)
			throws HibernateException {
		return (Oficina) session.merge(oficina);
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Oficina> listar(Session session) throws HibernateException 
	{
		Query query = session.getNamedQuery("Oficina.listar");
		return query.list();
	}
}